package com.zbkj.crmeb.store.dto;

import java.math.BigDecimal;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

import lombok.Data;

/**
 * IM反推订单
 * @author daigb
 * @date:  2022-05-17 17:21
 */
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class ImPushOrderResDTO {

    /**
     * 成功标识
     */
    @JsonProperty(value = "success")
    private Boolean success;
    
    /**
     *响应信息
     */
    @JsonProperty(value = "message")
    private String message;
    
    /**
     * 时间戳
     */
    @JsonProperty(value = "timestamp")
    private Long timestamp;

    /**
     * 请求结果
     */
    @JsonProperty(value = "data")
    private ImPushOrderDTO imPushOrderDTOs;
    
    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class ImPushOrderDTO {
    	
        @JsonProperty(value = "pageNo")
        private Integer pageNo;
        
        @JsonProperty(value = "pageSize")
        private Integer pageSize;
        
        @JsonProperty(value = "total")
        private Integer total;

        @JsonProperty(value = "list")
        private List<ImPushDataListDTO> imPushDataListDTOs;
        
        @Data
        @JsonIgnoreProperties(ignoreUnknown = true)
        public static class ImPushDataListDTO {
        	
        	@JsonProperty(value = "barcode")
        	private String barcode;
        	
        	@JsonProperty(value = "boutiqueId")
        	private String boutiqueId;
        	
        	@JsonProperty(value = "boutiqueSkuData")
        	private String boutiqueSkuData;
        	
        	@JsonProperty(value = "canceledAt")
        	private Long canceledAt;
        	
        	@JsonProperty(value = "confirmedAt")
        	private Long confirmedAt;
        	
        	@JsonProperty(value = "createdAt")
        	private Long createdAt;
        	
        	@JsonProperty(value = "euroRetailPrice")
        	private BigDecimal euroRetailPrice;
        	
        	@JsonProperty(value = "euroSupplyPrice")
        	private BigDecimal euroSupplyPrice;
        	
        	@JsonProperty(value = "fullNodeName")
        	private String fullNodeName;
        	
        	@JsonProperty(value = "image")
        	private String image;
        	
        	@JsonProperty(value = "orderLineNum")
        	private String orderLineNum;
        	
        	@JsonProperty(value = "originalRetailPrice")
        	private BigDecimal originalRetailPrice;
        	
        	@JsonProperty(value = "originalSupplyPrice")
        	private BigDecimal originalSupplyPrice;
        	
        	@JsonProperty(value = "productCode")
        	private String productCode;
        	
        	@JsonProperty(value = "shipToCountry")
        	private String shipToCountry;
        	
        	@JsonProperty(value = "shippedAt")
        	private Long shippedAt;
        	
        	@JsonProperty(value = "size")
        	private String size;
        	
        	@JsonProperty(value = "status")
        	private String status;
        	
        	@JsonProperty(value = "stock")
        	private Integer stock;
        	
        	@JsonProperty(value = "tag")
        	private String tag;
        	
        	@JsonProperty(value = "shipToAddress")
        	private ShipToAddress shipToAddress;
        	
        	@Data
            @JsonIgnoreProperties(ignoreUnknown = true)
            public static class ShipToAddress {
            	
            	@JsonProperty(value = "addr")
            	private String addr;
            	
            	@JsonProperty(value = "area")
            	private String area;
            	
            	@JsonProperty(value = "city")
            	private String city;
            	
            	@JsonProperty(value = "name")
            	private String name;
            	
            	@JsonProperty(value = "phone")
            	private String phone;
            	
            	@JsonProperty(value = "province")
            	private String province;
            	
            }
        }
        
    }
    
}
